package dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;


import domena.Przypomnienie;

@Repository
public class PrzypomnienieDAOImpl implements PrzypomnienieDAO {

	@Autowired
	private HibernateTemplate hibernateTemplate;

	@Override
	public void zapiszPrzypomnienie(Przypomnienie przypomnienie) {
		hibernateTemplate.save(przypomnienie);
	}
	
	@Override
	public void edytujPrzypomnienie(Przypomnienie przypomnienie){
		hibernateTemplate.update(przypomnienie);
	}
	
	@Override
	public void usunPrzypomnienie(long id){
		Przypomnienie przypomnienie = getId(id);
		
		if(przypomnienie!=null)
			hibernateTemplate.delete(przypomnienie);
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public Przypomnienie getId(long id) {
		DetachedCriteria cr = DetachedCriteria.forClass(Przypomnienie.class).add(Restrictions.idEq(id));				
		List<Przypomnienie> list = hibernateTemplate.findByCriteria(cr);
		if(!list.isEmpty())
			return list.get(0);
		return null;
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public List<Przypomnienie> listPrzypomnienie() {
		DetachedCriteria criteria = DetachedCriteria.forClass(Przypomnienie.class);			
		List<Przypomnienie> list = hibernateTemplate.findByCriteria(criteria);
		
		return list;
	}

}